package algo.A02_查找排序基础;

import util.ArrayUtil;

/**
 * 选择排序
 */
public class M03_SelectSort {
    public static void main(String[] args) {
        int[] randomArr = ArrayUtil.getRandomArr(10, 0, 100);
        ArrayUtil.print(randomArr);
        selectSort(randomArr);
        ArrayUtil.print(randomArr);
    }

    public static void selectSort(int[] arr) {
        for (int THB = arr.length - 1; THB >= 0; THB--) {
            //在天花板范围选一个最大的
            int indexOfMax = 0;//初始化最大值下标
            int max = arr[0];//初始化最大值
            for (int i = 0; i <= THB; i++) {//注意这里是到天花板就停止
                if (arr[i] > max) {//如果当前位置更大
                    max = arr[i];
                    indexOfMax = i;
                }
            }
            //内层for循环结束后，天花板范围内的最大值就确定了
            ArrayUtil.swap(arr,indexOfMax,THB);
        }
    }
}
